<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;

class DbController extends Controller
{
    public function db(){
        //添加数据
        // $data = [
            // 'username' => 'admin',
            // 'password' => '123456',
            // 添加默认值
            // 'email' => '',
            // 'email' => '123@admin.com',
            // 'sex' => ['男生','女生'][rand(0,1)]
        // ];
        // 返回true/false 不管理事件字段
        // $ret = User::insert($data);
        // 使用此方法 需要在模型中定义白名单或者黑名单 
        // $ret = User::create($data);
        // 如果是接口
        // return $ret; 
        // dump($ret);

        // 查询数据
        // 查询单条数据 不能使用where条件
        // $ret = User::find(1);
        // 查询单条 可以使用where条件
        // $ret = User::where('id','3')->first();
        // 查询多条 不能使用where条件
        // $ret = User::all();
        // 查询多条 可以使用where条件
        // $ret = User::where('username','=','admin')->get();
        // 查询多条排序
        // $ret = User::orderBy('id','desc')->get();
        // 查询指定的值
        // $ret = User::where('id',1)->value('username');
        // 查询一列值
        // $ret = User::pluck('username','id');
        // 查询指定的范围
        // $ret = User::offset(0)->limit(5)->get();
        // where搜索
        // $key = request()->get('key');
        // $ret = User::where($key,function(Builder $query) use ($key){
        //     $query->where('username','like','%{$key}%');
        // })->get();
        // dump($ret->toArray());

        // 修改数据
        // $id = 1;
        // $ret = User::where('id',$id)->update([
        //     'username' => 'abc'
        // ]);
        // dump($ret);

        // 删除数据
        // 使用delete删除
        // $id = 3;
        // $model = User::find($id);
        // $model->delete();
        // 静态方法删除
        // User::destroy(1);

        // 软删除 只要继承了软删除使用上面的方法删除就能实现软删除
        // 查询没有软删除的记录
        // $ret = User::orderBy('id','asc')->get(['id']);
        // dump($ret->toArray());
        // 查询软删除信息
        // $ret = User::onlyTrashed()->orderBy('id','asc')->get(['id']);
        // 恢复已经软删除
        // foreach ($ret as $model) {
            # code...
            // $model->restore();
        // }

        // 分页
        $data = User::paginate(10);
        return view('page',compact('data'));
    }
}
